#pragma once

// Copyright (c) 2010 Manuel Peinado Gallego <manuel.peinado@gmail.com>
// Distributed under the MIT license

// SceneTreeView.h : interface of the CSceneTreeView class
//

#include "SceneTreeCtrl.h"


class CFileViewToolBar : public CMFCToolBar
{
    virtual void OnUpdateCmdUI(CFrameWnd* /*pTarget*/, BOOL bDisableIfNoHndler)
    {
        CMFCToolBar::OnUpdateCmdUI((CFrameWnd*) GetOwner(), bDisableIfNoHndler);
    }

    virtual BOOL AllowShowOnList() const { return FALSE; }
};


class SceneTreeView : public CDockablePane
{
// Construction
public:
    SceneTreeView();

    void AdjustLayout();
    void OnChangeVisualStyle();

    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    // The tree control is what clients will be interested in most of the time
    CSceneTreeCtrl* getSceneTreeCtrl() { return &m_wndTreeCtrl; }

// Attributes
protected:
    
    CSceneTreeCtrl m_wndTreeCtrl;
    CImageList m_FileViewImages;
    CFileViewToolBar m_wndToolBar;


protected:

// Implementation
public:
    virtual ~SceneTreeView();

protected:
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnPaint();
    afx_msg void OnSetFocus(CWnd* pOldWnd);

    DECLARE_MESSAGE_MAP()
};

